Garbage collection is a type of memory management where a garbage collector reclaims memory occupied by objects that are no longer in use. Garbage collection may be used and/or required by certain programming languages. Although garbage collection may provide significant benefits, garbage collection may require some system overhead and thus may impact performance.